1. Field of the Invention
The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, it relates to reducing overhead associated with exporting remote objects.
2. Description of the Related Art
In computer science, an Object is typically defined as a compilation of attributes (object elements) and behaviors (methods or subroutines) encapsulating an entity. Accordingly, while primitive or simple data types are single pieces of information, object oriented objects are complicated types that have multiple pieces of information and specific properties (or attributes). As such, they are commonly considered to be fundamental data types in object-oriented programming languages and the foundation of object-oriented programming.
Remote objects are applications that do not reside on the computer executing the application code. These objects are able to be requested by the program using techniques such as a Remote Procedure Call (RPC). For example, the Java Remote Method Invocation (RMI) is a type of access to remote objects that a programmer, using the Java programming language, employs to access objects on different platforms over a distributed network. The Java RMI can facilitate distributed object interaction for Java Objects and provides seamless integration between Java Objects by taking advantage of the Java object model whenever possible.
Certain Java application frameworks create large numbers of fine-grained remote objects and there is an associated performance overhead when these remote objects are created and accessed through their remote references. For example, memory is consumed when storing the object reference in the object table and CPU cycles are consumed for placing remote objects in an object table, performing look-up operations when invoking a method, cleaning up the object table when the remote object is no longer needed, etc. However, the usage of these objects is often by clients in the same virtual machine and typically from the web container layer. As a result, the incurrence of RMI overhead in these cases is unnecessary. In existing solutions, clients in the same virtual machine bypass the RMI layer to avoid serialization overhead, but the overhead of exporting those objects is still incurred.